I'm slightly confused after reading about page alignment. Why would a 16k page be less aligned than a 4k page causing assumptions about pointers within those pages to break? The 4k pages on x86 are aligned on 4k boundaries, are the 16k pages on M1 aligned on <4k boundaries?
There are more 4k boundaries than 16k boundaries. The issue is code compiled for 4k boundaries running on a 16k system.