Yes that's also 8 bytes. The meaning of this name is:(P.S I never had TSTRUCT_PTR_ARRAY_PTR_START so far for the stuff I did so if it's wrong that it's 8 bytes too please correct me)
TSTRUCT_PTR_ARRAY_PTR => array<struct*>* , it means that you read uint32(numberOfRecords) uint32(offsetToRecords) and that those records are themselves just an offset to a struct.
And about name conflicts, either you just parse the structs with a modified script that appends '_' to variable names and replaces '.' by '_' (like me xD) or you do it manually when 010 complains. But it is still not so frequent so doing it by hand is not a big issue. But you can blame ArenaNet for naming them like this