I had to work around this "one byte padding" thingamajig in my GapKiller code, so I'm intimately familiar with it. It's per-frame, so each and every frame has the possibility of having the padding byte, I don't think it has anything to do with the end of the file.
This Guy has a very detailed and easy to understand description of the frame headers and how the padding byte works into it.
Edit: Mike, I just re-read what you were saying, and you were talking frame-by-frame not about the end of the file. So the header spec I just linked should in fact answer your question quite well.