i finally built my machine. here are my notes about how the USB ports are mapped on this board. i don't actually know if the board has a slot for wifi or bluetooth so some of the missing SS/HS ports in the list might actually exist...
also i don't have anything that can plug into the USB3.1 header on the motherboard so i'm not sure where those devices live in the IORegistry. i also couldn't test the usb-C port on the back, but since the red USB port seems to work, i suppose it probably does too. it's on a totally different controller than the rest of the USB ports...
anyway, here are the mappings:
USB port mapping, Z370 HD3P
motherboard:
USB3 header:
SS05, HS05 & SS06, HS06
USB2 headers:
nearer to sata ports: HS11 HS12
farther from sata ports: HS13 HS14
back panel:
PS/2 top: HS09
PS/2 bottom: HS10
HDMI top: SS08, HS08
HDMI bottom: SS07, HS07
ethernet top: SS04, HS04
ethernet bottom: SS03, HS03
red port: RP05@1C,4 / IOPP / PXSX@0 / AppleUSB20XHCIPort
can’t test usb-C port
can't test USB3.1 header on mobo. no idea if that's even the same controller as the USB2/USB3 ports.
not seen: HS01, HS02, SS01, SS02, SS09, SS10, USR1, USR2
xhc device id: af a2 00 00 (0xa2af)
i made an aml and removed the port limit patch, but nothing really changed, except for the fact that i had to disable one of the USB ports on the back panel to get to 15 ports.
i had hoped that doing this right would solve my "drive not ejected properly" problem when coming out of sleep. interestingly this problem seems to be tied to overclocking: i found that with stock CPU frequencies and XMP turned off in the bios, that i didn't have this problem. the minute i turned on XMP, i started having the issue. as a workaround, i copied down all the memory timings that the XMP profile sets and entered them manually, but when i overclocked the CPU, the problem came back.
i don't care that much because i tend to leave my computer on. but it really seems that there is no solution to this problem.