and explicit size variables seem really easy to get wrong
Yeah, in my head I was really thinking that this file could be generated by a script, in which case explicit sizes, when generated by a script, aren't bad.
IMO, if this PR works, just merge it for now and anyone interested in doing it another way can submit a follow-up PR. It's not like it's a big change from the current code.