What the castle is made of
The creatures are on the sprites page. These are the other half: the pieces a room is furnished with -- door frames, a clock, a bookcase, a skeleton in chains -- and the two character sets.
They are a different shape from a sprite. A creature is always two bytes wide and stores only a row count; these carry a width as well, and are drawn by different code. Which format applies is decided by the sprite code rather than by anything in the bytes: above $A1 is furniture.
Each is drawn in its own colours. Those are a second table, running alongside the graphics one and in the same format -- one attribute per character cell rather than one byte per eight pixels. It is what separates the four locked doors below: one picture between them, and four colour tables.
$FF in one of those tables is not a colour. The real values are $00, $07 and $42 to $47; $FF means leave this cell as it is, so the pixels are drawn and the cell keeps whatever the room painted there. That is how a doorway is drawn in the colour of the wall it is cut into. On this page there is no room to take a colour from, so those cells are drawn bright white on black -- four of the graphics are nothing but $FF, and would otherwise show as nothing at all.
34 of them. The names are pobtastic's, from the Atic Atac disassembly at skoolkit.arcadegeek.co.uk; the ones still shown by number are unnamed here.
The text font
59 characters, $20 to $5A -- space, digits, punctuation and capitals, and nothing else. The code never names this address: it loads $BE4C, which is this block less $20 characters, so a character's own code indexes it.
The status panel's character set
94 characters, used with a 192-byte map of which piece goes in each of the panel's 8 by 24 cells. The scroll is a little character set and an index, not a bitmap.