Ok, next optimisation: CLUT tables.
The engine now supports T8 clut table rendering, meaning that we can quarter RAM usage again. T8 clut tables work by using a single char to represent a value 0-255 which is stored on a table, instead of 4 char values 0-255 for A,R,G,B.
Gif files natively only support a maximum of 256 colours, which makes them a prime candidate for this optimisation:
These are two gif files (one has transparency, the other does not). Both these gif files are using 1/4 the RAM of before, with no colour loss.