I avoided API mode like the plague until I found out it can split packets. I use regular old text between devices to carry my data, so things like,"temp1,70" were flying around between devices. This was fine until I got a few devices out there and with the collisions and retries I started seeing things like "temp1" a couple of packets from other devices and then, ",70". The problem was actually much worse than this because I have a couple of devices that send long text strings, "device1,On,Off,Open,Closed,someotherstuff," and those devices would get chopped up mercilessly.
I dug for quite a while trying to find a solution and couldn't, so I bit the bullet and went to API mode. Suddenly, all the packets were complete and things settled down. I was still avoiding the XBee library until there were some changes made to it to support software serial ports and the additional serial ports on the 2560. That was too tempting. I grabbed the library that supports this and tested it.
Yes, now you can have API mode, using the library, at nice speeds, on alternate ports (giving you the serial for debugging and status). Really freaking cool. I still send text between the devices (well, most of them) because I want to watch the traffic from time to time to see what is going on. Even after months of the devices working, bugs show up.
It really isn't all that hard to figure out what the heck is going on and get your first project running with the library. I have two examples that I commented the heck out of so newbies to the library can get a kickstart. They both use a 2560 and one of the additional serial ports, but it would be really easy to switch to software serial for the XBee. Both examples leave the regular serial port available for other things. The code will run on a 328 just fine using software serial, you don't need the 2560; I just wanted to use my spare 2560 for something to be sure it actually worked.
Steal them if you want them:
http://www.desert-home.com/2012/11/using-xbee-library-part-2.htmlhttp://www.desert-home.com/2012/10/using-xbee-library.htmlAlso, you can have your controller, concentrator, whatever you're using in AT mode and still see what is going on. The XBees transmit between each other in their own protocol and convert to whatever mode you have them set to. So, a remote XBee can be in API mode and sending stuff and the one plugged into your laptop can be in AT mode and still give you stuff you can read. This works great for getting a node running. It won't work if you use the analog or digital pins on the XBee, because they require API mode for that, but the stuff coming in the serial port works fine.
While you're at it, think about avoiding broadcast for the final running devices. Broadcast has its own particular problems that can drive you nuts over time. However, broadcast is great for getting a device up and running; then change it when you trust it.