This is not technically the explanation for the 2x ratio difference, at least on the Cisco platform under the microscope here. It is slightly more nuanced than that.
The TCAM entries are divided up into two bucket sizes: 72 bit buckets and 144 bit buckets.
An IPv4 address is 32 bits
An IPv6 address is 128 bits
An IPv4 FIB entry is 32-bits plus any additional bits it stores like interface and next-hop info
An IPv6 FIB entry is 128-bits plus any additional bits it stores like interface and next-hop info
128 bits do not fit into a 72-bit bucket so it gets stored in the larger 144-bit bucket.
There are multicast entries, MPLS entries, etc that all fit into one or the other of the two TCAM buckets.
The bucket sizes are 2x difference, not the amount of stored info from the address family sizes.