mtlBase and mtlInherit uses a newer, more portable method for generating type IDs