Feklar,
Thanks! I actually got this done in a lab environment as you were responding! I think I was getting hung up by trying to do too much at one time , being afraid to muck up a production network, and being too stubborn and lazy by not setting up a lab to begin with.
Anyways, once I got the NET-to-NET tunnel working, I changed it up to preserve NAT on the local side. It’s a bit different than when I was using the GRE tunnel, but it works and keeps the local network invisible to the remote network. It just sees my WAN IP, which is fine.
For posterity and the hope that it helps someone else, here’s my final lab setup:

In almost every lab I do, I configure OSPF to make it easier to throw subnets around without having to add/update/remote static routes. It makes the lab configs a bit longer, but the labs are much easier to work with this way.
The first router is to simulate the Internet. I use CGN (rfc6598) space for the “Internet,” and private (rfc1918) space for the networks. The “Internet” router has routing and firewall filters to ensure that RFC1918 addresses are not leaked.
MT_01 (Internet):
/routing ospf instance
set [ find default=yes ] distribute-default=always-as-type-1 \
redistribute-connected=as-type-1
/ip address
add address=100.99.1.1/30 interface=ether2
add address=100.99.1.5/30 interface=ether3
add address=192.168.0.33/24 interface=ether1
/ip firewall filter
add chain=forward dst-address=192.168.0.0/24
add chain=forward src-address=192.168.0.0/24
add action=reject chain=forward dst-address=192.168.0.0/16
/ip route
add distance=1 gateway=192.168.0.1
/routing filter
add action=discard chain=ospf-out prefix=192.168.0.0/16 prefix-length=16-32
/routing ospf network
add area=backbone network=100.99.1.4/30
add area=backbone network=100.99.1.0/30
/system identity
set name=MT_01
MT_02 (Remote):
/interface bridge
add name=lo0
/ip address
add address=100.99.1.2/30 interface=ether2
add address=192.168.100.1/24 interface=lo0
/ip firewall nat
add chain=srcnat dst-address=100.99.1.6 src-address=192.168.100.0/24
add action=masquerade chain=srcnat out-interface=ether2 src-address=192.168.100.0/24
/ip ipsec peer
add address=100.99.1.6/32 secret=test
/ip ipsec policy
add dst-address=100.99.1.6/32 sa-dst-address=100.99.1.6 sa-src-address=100.99.1.2 src-address=192.168.100.0/24 \
tunnel=yes
/routing ospf network
add area=backbone network=100.99.1.0/30
/system identity
set name=MT_02
MT_03 (Local Router):
/ip address
add address=100.99.1.6/30 interface=ether2
add address=192.168.200.1/24 interface=ether3
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether2 src-address=192.168.200.0/24
/ip ipsec peer
add address=100.99.1.2/32 secret=test
/ip ipsec policy
add dst-address=192.168.100.0/24 sa-dst-address=100.99.1.2 sa-src-address=100.99.1.6 src-address=100.99.1.6/32 tunnel=yes
/routing ospf network
add area=backbone network=100.99.1.4/30
/system identity
set name=MT_03
MT_04 is just a host on the 192.168.200.0/24 network…
But wait… THERE’S MORE! I’m going into the basement to set up a real lab. I’m going to see if I can get the ASA firmware running on MT/KVM. I almost have it running on QEMU, but it’s horridly unstable. Wish me luck!