Allright, I posted the extracted pipe information to my website
. It's the tarball labled "info". However, the pipe connection info can be a little tricky to use. I'll try to give a decent explanation of how it works.
The game tracks pipe connections by the same twenty column chunks that it uses for other stuff. A pipe connection consists of an entrance chunk, an exit chunk, a pointer for sprite info, the exit level type and the vertical height you exit at.
The exit chunk is pretty straight forward. Once you go through the pipe, it drops you out the specified chunk. The horizontal position (whithin the chunk) is fixed at 40 pixels. The vertical position is controlled by the vertical position argument. The level type gives info such as what music to play, whether you jump or swim, etc.
The sprite info pointer isn't needed for our purposes and the version of the info files I posted doens't have it included.
The entry chunk is a little more complicated. Rather than specifing the chunk that the pipe is located in, it specifies the chunk which the far left of the screen is located in when you enter the pipe. This may or may not be the same chunk the pipe itself is located in. For instance, the second pipe in 2-1 is located in chunk 6, but when you get to it, the far left of the screen is still in chunk 5, so the pipe info data has the entry chunk as 5.
What this basically means in practice is that if you can't find an entry for the chunk you're looking at, check the previous chunk.
I'll try to post a new set of level renders that has the chunk boundries delineated. In the mean time, remember that a chunk is 20 columns, which is 320 pixels.