This is fully doable.
Assume you have an internet address lets pretend it is... 184.108.40.206, just to have something. (I know, it is actually google's address...)
You can have a NAT router A which have this 220.127.116.11 address as its only external address and an inside network 10.0.0.0/8 that use NAT to reach the internet via the external 18.104.22.168 interface.
On that 10.0.0.0/8 network, you can have a NAT router B with an external IP address in that 10.0.0.0/8 network (say, 10.1.1.1) and an internal subnet of 192.168.1.0/24.
A client PC connected to that 192.168.1.0 subnet (e.g with IP 192.168.1.33) can communicate through both NAT routers to connect to sites on the internet.
When creating virtual machines on a host server, one option for network connectivity for them is to let them (the virtual machines) connect to the local network (and the rest of the world) using the virtualization host server as a NAT router. In this case, the VMs never communicate directly with the network outside of their host server.
If the physical server itself that hosts the VMs is located inside a NATed network which access the internet via a NAT router, then the virtual machines hosted on that server are effectively talking with the internet via two NAT routers.
Then of course, with many clients behind multiple layers of NAT routers, you will eventually run out of ports on the internet-connected NAT router. But that is another story.
(I don't have time right now, but I got a NAT router connected to the internet and some more routers to play around with, so I should within the next week actually try this out myself, only to see it in action :-) ).