> NAT is an ugly hack to extend IPv4 address space that breaks the internet
Or to phrase it more generously, NAT is an ugly but simple hack that allowed the internet grow despite limited address space and without a gigantic investment in hardware to support an over-engineered replacement protocol.
IPv6 is really just IPv4 with more address space. There are a bunch of extensions that nobody uses, sure, but nobody uses them and they can be safely ignored in most cases.
The only other significant change from V4 to V6 is the use of multicast instead of dumb broadcast for V6's equivalent of ARP on LANs. That's an improvement as it allows smart switches to more easily scale address lookup.
NAT is more over-engineered than IPv6. IPv6 is literally the same as IPv4 in most aspects. People are just lazy because NAT makes things "work" (if you can call it that).
It may have done that back when 128 bit addresses were actually expensive, but it also altered the evolution of that network from a more open peer to peer architecture to a closed silo mediated architecture. Things that should be simple and easy became complex and expensive. We are all poorer for it. You could say that instead of paying to upgrade we are paying for lost capabilities and technical debt.
It's much easier to deal with port opening or changing than it is to deal with a fragmented address space. NAT reminds me of the networking analog of segmented addressing on 16 bit 8086 processors, but worse as it is not systematic.