MAC address can be easily changed, with ifconfig(8). Nearly every Unix has an ioctl(2) request for this. So does NT.
But on mobile you might need a "rooted" device.
I have the following script in my OS X toolbox to allow me to connect to public WiFis for longer than allowed time.
#!/bin/bash
sudo ifconfig en1 ether `openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`