As with other libkvm interfaces use maximum-sized types to support cross-debugging (e.g. a 64-bit vmcore on a 32-bit host). See https://lists.freebsd.org/pipermail/svn-src-all/2019-February/176051.html for further discussion.
Unit Tests Skipped
This comment needs updating, perhaps:
Types suitable for exporting physical addresses, virtual addresses (pointers), and memory object sizes from the kernel independent of native word size. These should be used in place of vm_paddr_t, (u)intptr_t, and size_t in structs which contain such types that are shared with userspace.
I'm fine with these changes, even though they break the API. For my purposes, it isn't a big deal, especially with the version bump.
I don't think I can say much about the appropriateness of the types, but it makes sense to me to have them.