The block merkle tree structure currently assumes a NULL_HASH value for each of the reserved nodes 9-16. In the code that resolves the root of the block, these reserved nodes should instead be ignored; the tree structure will intentionally not be balanced.
EDIT: NULL_HASH should be used–this doesn't need to be fixed–but we need to verify that each internal node and each leaf are concatenated with the right prefixes (0x00, 0x01, 0x02).