This has been discussed many many many times. There is a glitch in the Arduino Mega 1280 bootloader wherby if three ! are recieved in a row, the bootloader enters a funny mode and doesn't complete the upload.