Dublin Traceroute is a NAT-aware multipath traceroute tool. You should really read more at https://dublin-traceroute.net .
Feedback is extremely welcome! Find my contacts on https://insomniac.slackware.it .
But, in a few words, you can run traceroutes in multi-path networks (i.e. with ECMP load-balancing enabled), recognize NATs, have nice diagrams like the one below, export to JSON, and do this with a command-line tool, a C++ library or a Python library.