Hi there Jonesy,
Forgive me asking, but I am interested as to the first 256/512 bytes angle, does this act as a sort of FAT system for the rest of the image data, if so that's a new one on me!
The way I understand it is that image data is stored in hex data, hence why when you compress an image file, the compression engine opens the image file in hex and the selects chunks of data that repeat ie: multiple FF FF FF FF chunks would be treated as FF x4 (same for any other combination of digits) so long as they repeat more than twice in a row, this is why I suggested the hex option - if its even possible.
I have experimented a similar thing in C, but never got to see the light of day. I would be interested to see how this one pans out!