This is admittedly not very pretty - it's quite complicated and brittle to know exactly which type to align against for each case when bumping some size/offset forward. I guess one also could align everything to `max_align_t` or something along those lines, for simplicity.