Yeah that's how we did it, loading a "blob" into packed structs :-)
I'm with you with the int32_t, that's totally the way to go IMO, I guess my rant about #define INT32 got lost somewhere :-)
Actually got myself a job coding DS&Wii back in the day with my DS streaming tile engine (it is funnier to make engines), "use 64k tiles with the native 256 tile engine". I had a little demo where you wandered around and slayed skeletons Diablo 2 like, backpack and items included. Built with the unofficial retroengineered dev kit. Got my hands on the official docs after that!
Fun times.