Use defined values instead of embedding offset and size data into functions.

There's still implicit sizes in the functions as they call _read_uint32
etc so that should be factored out as well.