Surely a sensible plan is not THAT difficult?
My initial idea would be
First 16 bits = country code
Next 16 bits = area code in country
Next 16 bits = ISP within area
If the ISP uses the next 32 bits to identify each of its customers, that leaves each customer with an address space of 48 bits for each device on its internal LAN
48 bits is the length of a MAC address, so why not have each device using its (globally unique) MAC address as the last 6 bytes of its IPV6 address? DHCP would provide the first 10 bytes of the IPV6 address, each device would provide its own last 6 bytes (which could be locally managed if desired). Which would have the possible advantage that the IP address would tell you the manufacturer of the item you are communicating with.