I got tripped up trying to make a first pass at decoding the main data section. The MP3 spec doc i got is outdated and is missing information. So the info I have for the main data section comes from random pdfs and mp3 decoder sources.
MP3 frames are composed of a syncword, header, sidedata, and then main data. The main data has 2 parts called granules. Each granule starts with a set of scaling factors and then is followed by huffman encoded coefficients.
To make sure that python code is correct, I started adding printfs to the reference decoder. So far, so good.