This is very interesting. I read the documentation and was wondering if you ever considered bubbling non-empty subtrees in addition to non-empty leaves as well?
It would compact the tree even more and may enable the Integer Key case out of the box without any special treatment.
You find a discussion of this in: Compact Sparse Merkle Trees on this Forum. In the same discussion later down I presented an alternative to the initial suggestion (Compact Sparse Merkle Trees)