So I was using BitConverter.GetBytes() to convert uint32 to byte[], but my the order in the array seems to be backwards.
http://msdn.microsoft.com/en-us/library/1184xdy4.aspx
(shows that it’s byte[] seems to be little endian).
Is there a better way handle this than just using linq to reverse the byte arrays?
So I figured out a big part of my confusion is related to this: IsLittleEndian field reports false, but it must be Little-Endian?
What I ended up doing was wrapping all the BitConverter calls with call that took an extra parameter to specifiy endianness, then added a function that gets called to check to see if the bytes need to be revered.