I just got an iPhone 6 Plus from T-Mobile a couple days ago, and I don't seem to be getting an IPv6 address over LTE. Maybe they aren't doing it everywhere yet?
I'm in Western Washington, in the Puget Sound area on the other side of the water from Seattle.
On Android, you can just go to "Settings" -> "Cellular networks" -> "Access point names" and choose whether you want to request an IPv4 or IPv6 address.
As far as I can tell (from looking at https://support.apple.com/en-us/HT201699), iOS doesn't have an equivalent option, so it probably just doesn't support IPv6 over cellular networks yet.
I'm not the OP, but when I tether with my Nexus S (running Cyanogenmod), I get an IPv4 address in RFC 1918 space. T-Mobile gives their handsets only an IPv6 address. They also used to use -I think- NAT64, which meant that direct access to resources by their IPv4 address failed. [0] IIRC, their IPv6->IPv4 bridging method has been changed, so you can access IPv4 resources by their address now.
[0] T-Mo was using -I think- the return of an A record in DNS lookup to establish a NAT mapping, so IP access without the lookup didn't trigger the mapping.