Two structs with the same name must have exactly the same definition, no
matter where they occur in the program, otherwise the program is undefined.
Move each sample register struct definition into the associated class
definition so they are in a different namespace and no longer
identically named, thus fixing this issue.