This patch splits mostly unrelated size constants into separate constexpr variables, sets explicit underlying types for the enumerations to match the fields they are used for, and improves various comments.
This patch also replaces <cname> headers with <name.h> headers to match the usage of the declared names as global namespace members in the file.
nit: remove blank line?