You'd just need to replace LinearAllocator (which I use to get pages from the static heap) with a wrapper Allocator that would start allocating free pages from the physical memory allocator once the static heap was exhausted and the memory management was fully initialized.
That was actually my plan all along, but I don't have the interface for the physical memory allocator, as it doesn't exist yet.