El enfoque de Jarlaxe es diferente: él está usando un tileset de 16 y luego añade adornos mediante scripting.
Esto habría que estudiarlo, ya que dependiendo del número de adornos es posible que al final ocupes más memoria que teniendo el mapa "unpacked" y el tileset completo en uso. En el script, cada tile puesto ocupa 4 bytes (opcode de "poner tile", coordenadas (x, y) y el número de tile).
Un mapa de 24 pantallas en "packed" (16 tiles) ocupa 1800 bytes, o 3600 si es "unpacked" (48 tiles). Eso significa que para que ocupe menos con el enfoque que está siguiendo Jarlaxe el número de tiles puestos desde el script deben ocupar 1800 bytes.
Sin contar con nada más, y teniendo en cuenta que cada entrada "ENTERING SCREEN" en el script con un IF TRUE para colocar los tiles ocupa unos cuatro bytes por pantalla, podrían colocarse 1800-24*4 = 1704 bytes de tiles, o sea, 1704 / 4 = 426 tiles.
Si pones menos de 426 tiles mediante scripting en todo el mapa, te sale a cuenta el método de jarlaxe
426 / 24 = 17 (redondeando) tiles especiales por pantalla.