What about screens? I'm using them as a part of the compression as well. It'd be easier to loop sections of the level that way when you can just repeat the same screen multiple times.
EDIT: As a reference my level data looks like this:
Code:
MetatileList:
T00: ; blank tile
.db $00,$00,$00,$00
T01: ; test tile
.db $1D,$0E,$1C,$1D
T02: ; question mark tile
.db $26,$26,$26,$26
T03: ; score part 1
.db $90,$91,$00,$00
T04: ; score part 2
.db $92,$93,$00,$00
T05: ; lives part 1
.db $94,$95,$00,$00
T06: ; lives part 2
.db $96,$97,$00,$00
T07: ; bombs part 1
.db $98,$99,$00,$00
T08: ; bombs part 2
.db $9A,$9B,$00,$00
RowList:
R00: ; blank row
.dw T00,T00,T00,T00,T00,T00,T00,T00,T00,T00,T00,T00,T00,T00,T00,T00
R01: ; test row
.dw T01,T01,T01,T01,T01,T01,T01,T01,T01,T01,T01,T01,T01,T01,T01,T01
R02: ; question mark row
.dw T02,T02,T02,T02,T02,T02,T02,T02,T02,T02,T02,T02,T02,T02,T02,T02
R03: ; status row
.dw T00,T00,T03,T04,T00,T00,T00,T05,T06,T00,T00,T00,T07,T08,T00,T00
ScreenList:
S00: ; test screen 1
.dw R00,R01,R00,R01,R00,R01,R00,R01,R00,R01,R00,R01,R00,R01,R00
S01: ; test screen 2
.dw R02,R02,R02,R02,R02,R02,R02,R00,R02,R02,R02,R02,R02,R02,R02
S02: ; test screen 3
.dw R00,R00,R03,R00,R00,R03,R00,R00,R03,R00,R00,R03,R00,R00,R03
LevelList:
L01: ; test level
.dw S00,S01,S02,S00,S01,S02