Mazatlan was one of our favorite ports, we were a little concerned when we docked because mostly what you see is industrial type surroundings, a mini type tram loads up the passengers when you get off the ship and takes you to a terminal area where you will be SWARMED with vendors,taxis, tour operators, etc. We didn't book anything through the ship, and did everything on our own ( which is highly discouraged by Carnival ) with good cause I'm sure, but we took our chances and did our own thing. 2 of our group walked a couple of blocks to the Marina and pd $2 pp for the water taxi over to Stone Island, they had a fantasic day hanging out on the beach. The total cost for them for food and drinks all day was about $25 pp. The other 4 in our group went with a taxi who charged us $50 total for all 4 of us and he toured us around the entire area for about 4-5 hours, he took us to all the popular sights, we stopped numerous times for photos, he took us to a locals favorite for lunch, and we ended the day at the Golden Zone for some shopping before we headed back to the ship. We felt like we got the most out of this stop because we were able to see so much and get a real feel of the area. I recommend doing your shopping in Mazatlan or Puerta Vallerta because Cabo is more expensive for the very same things you can get at these ports and in Cabo they don't care to bargain.
Important to note that if you do your own thing with a taxi......make sure you get a driver who knows english....quiz him well, do make sure he understands you and you understand him, then negotiate the price...the want to charge $25 pp for the day but you can get them down, like I said we ended up with a price of $50 for 3 hours for all 4 of us and he ended up extended it to about 4 1/2 hrs we pd him a little more, another couple we talked to said they did a taxi for $20 pp for the whole day....our first taxi driver turned out to not speak so well, so we had him take us back to the terminal and negotiated with a different driver who turned out to be fantastic!