Possible to Use an Uno/Mega2560 as ISP to program Mega2560?

Goal: Use either an Uno or a Mega to program a Mega (upload a sketch, not bootloader)

From what I've read on these forums and elsewhere, ArduinoISP is unable to program Megas because the protocol is STK500 mk I and cannot access the entire memory available on the Mega.

Are there alternatives to this sketch so that I can send a compiled hex to my Mega via an Uno/Mega?

I've seen Nick Gammon's Bootloader and Hex Uploaders which both seem to work with the Mega but:

Has anyone used his bootloader sketch to upload a compiled sketch rather than a bootloader?

The Hex Uploader requires an SDCard pre-loaded with images, rather than being able to send an image from PC. Modifying the Hex Uploader to send a hex via serial seems like a fun project, but its not something I really want to do at this point.

I have ordered a programmer and expect to be able to use it directly from the Arduino IDE soon, but I would like to be able to use a spare Arduino to program others in a pinch.

I would like to be able to use a spare Arduino to program others in a pinch.

Nick's programmer does that. I built a hardware card to run Nick's program on.
www.crossroadsfencing.com/BobuinoRev17/Programmer.html

ArduinoISP can upload hexfiles to an atmega2560 and can address the complete memory range. This is thanks to a clever piece of code in avrdude that uses the ‘universal’ stk500v1 command to prepare the atmega for a subsequent write in high memory.

You need avrdude 6.1 which is more recent than what the current ide installs. On linux it is easy to compile avrdude from source. On windows, I downloaded the avdude 6.1 release and copied the avrdude.exe and avrdude.conf over the ones in the ide install dir.

This ArduinoISP version is the release candidate for an upcoming version of the ide. It is much more stable than the version in the current (i.e. 1.6.5) ide.

It actually works very well. You probably already heard you have to disable autoreset on your programming arduino.