an interesting thing i've thought about but never prototyped: recursive sprites. every block is a 2x2 of blocks. no difference between sprite data and tiles. render consists of walking down the tree up to a stopping depth and drawing those pixels. possibly some blocks are not subdivided further.