Code works on boot loader but not when directly programmed

holmes4:
No a program written to work with a bootloader needs the bootloader to work. A program written to work without a bootloader will not (most likely) work with it.

I have to take issue with this. All the boot loader does is load programs. Programs (other than bootloaders themselves) are designed to start executing from address 0. How they get there is not relevant.

To find the fuses you should be able to do something like this from a command line:

avrdude -c avrispv2 -p m2560 -v