That uses standard Z2 autoconfig, but with the trick of claiming the $e8.0000 accesses for the memory card. With that trick, I sneak myself before any other Autoconfig card, because the main board will not see the access to $e8.0000 unless I let it. Unfortunately, I cannot push myself into the 64k space that overlays the Kickstart, hence the limitation to only "MapROM" the physically installed ROM. So yep, this is hacky, but avoids manual addmem in startup-sequence, and actually lets expansion (and other early stuff) reside in 32-bit fastmem, as I'm also mapping to trapdoor space. But.. we're side tracking..
I had suggested that idea (hiding the motherboard Z2 resources until after config) a few years ago to another developer on the forums when they were just learning the old lessons and pitfalls of Z2 AutoConfig and FastRAM with a 24-bit motherboard and a 32-bit addressing CPU. I still have burn marks from being the messenger, but they (and others) eventually chose that route. You probably pre-dated me on figuring it out, but good to know. The page-zero theft at startup is another good one.
I have the HRM (the physical book!) here - 3rd edition, along with the RKRMs (all three of them). One of my very first eBay purchases ever, before Y2K! Couldn't find that specific sentence browsing through the Autoconfig/Z3 chapter, but I didn't do a thorough search. Would be nice if you give me a page#, so I can quote that to anyone who says I deviated from the specs by leaving out A31 from the X-Surf-100 address storage register
As for the A3000D memory map, Appendix D, page 315 (English version). Zorro III Expansion: $1000.0000 - $7FFF.FFFF. Diagram on the next page.
As for my comment to also use the space below $4000.0000, I'd like to see that only being used when an upper boundary has been reached. Reason is that my minimal Z3 implementations on the A1200 accelerators are using no address latches at all. Since I know that my board is the first in the autoconfig chain, my address comparator is fixed at $4000.0000 for those cards. This will of course break if the start address of a hypothetical new version of expansion is lowered.
I will make sure it's kept in the mind of the devs as they hopefully address it. Expansion.library was something Thor was very delicate with after I showed up on the 3.1.4 beta team with my laundry list of concerns. The initial transfer to SAS/C compiling from the old Greenwood days apparently gave them headaches when it came to working on the hardware directly. Some things were better done with inline 68K or needed some compiler optimizations worked around. Getting him to add some more hardware delays so fast CPUs did not race past multiple slow LS-rated TTL gates on older cards was all I could hope to get back then. I still have hoped they would open up the space above $009F.FFFF as overflow when the I/O space at $E9.0000 is full, or a small enough card might fit from the 8M space. It's reserved on the 68K machines, but it's actually more I/O space defined on the A3000 - also not implemented in Kickstart 3.1.
I have asked them awhile back to consider supporting the Z3 expansion spaces on Z2 hosts for z3 cards that appear at the Z2 config space (as A3000/4000 supports, if my memory serves). It would help any of the current CPU card makers AutoConfig their RAM and other resources - being the first card to config, they might have an option as to where they want to be placed - maybe by expressing the base address(es) as an extension. I think the correction to expansion.library mainly applies to the big-box Amiga hosts. I don't think the A1200 needs any further tweaking unless we are talking officially supporting an extended 512K ROM at $E0.0000.
One thing I'd like them build into any further update is the ability to test for and custom-add the extended ROM space at $E0.0000 - plenty do custom ROMs, and an official support option would be nice (not unlike the $F0.0000 hook). I'm thinking of the people that put them in towers, and that would open up official options for them anyway.