Porque é que o tamanho do ficheiro de um jogo Pokemon é tão pequeno?
Pokemon honestamente não é terrivelmente complexo. Apesar do que parece, ter tantos pokemon no jogo é apenas uma questão de espaço de texto. Tudo se encaixa perfeitamente em um template que pode ser reutilizado, com valores que podem ser referenciados ao ponto que você não está realmente armazenando todos esses dados.
Plus, os sprites realmente não ocupam tanto espaço. Mesmo animados (corrija-me se eu estiver errado aqui, já faz um tempo), cada sprite tem no máximo 2-3 frames reais, e alguma animação automática aplicada em cima dele (alongamento, rotação, etc.)
Então dado que, o tamanho de uma folha de sprite de todo o pokemon não pode ser tanto - multiplicado por 2 ou 3, ainda é bem pequeno. Mesmo incluindo os tilesets quase universais, isso ainda deixa muito espaço para música. Não sou especialista em compressão, mas aposto que a música é bastante optimizada para usar a sua única fonte sonora tanto quanto possível (veja: HOENN TRUMPETS)
Os mapas e scripts de eventos ocupariam um espaço insignificante em comparação com estes dois também.
A única razão pela qual pode parecer que deveria ser mais é se considerar cada animação sprite como o seu tamanho em forma gif, e a música exportada separadamente como mp3. O truque chave para fazer as coisas caberem em hardware limitado (moreso 10+ anos atrás do que agora) é o quanto você pode reutilizar e minimizar a inclusão de elementos verdadeiramente novos.