MK4 has most of it's gfx in .geo files. Geo file contains header (signature, filesize, pointer to graph data (15 bpp)), actual graphics data and some blocks which I don't understand:
1)$C-$8BF strange data, which is not read by game (as far as I could see)
2)$8104-$8107 word 00 00 00 10 - game compares it to $10 - most probably CLUT size either for 4 bpp or 8bpp
3)$8108 - EOF strange data which is actually written into GPU_Data port: 0x1F801810 and according to Joshua Walker it must start with some type of commands, but in my example file this command is 80 00 00 00 (move image in frame buffer), which is absurd, cause image is not moved in frame buffer for sure.
So the most problem I have is with 3rd, because of lack of knowledge about gpu_data stuff...
One idea - ther MUST be CLUT somewhere in that file!