My assumption on the reason that it requires 2M or more is all the memory mapped I/O devices in the first 1M of PC memory. They just wanted to avoid the whole page and set the origin at 2MB.
Hi there, this is my project. And yes, you are essentially correct. It can actually work in a little less than 2MB, but this was done this way for simplicity, and to avoid, for now, what would be a more complicated memory map and paging requirements.