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?
I'm missing something here. Assuming there are pages at 0k, 16k, 32k etc - all of those pages are aligned on 4k boundaries as 4k > 16k. So code written with the assumption that its pages are 4k aligned should have that assumption met when running with 16k pages. It is still early here and I have only had one cup of coffee. Am I misunderstanding something really obvious?