It is a little bit dangerous to say this kind of thing without actually checking it out.... But I think you can just change the G29 code like this:

Code:
case 29: // G29 Detailed Auto Bed Leveling Z-Probe, probes the bed at 3 or more points.
        // Example Syntax:  G29 N 4 V 2 E T
{
          HOMEAXIS(X);
          HOMEAXIS(Y);
          HOMEAXIS(Z);

        plan_bed_level_matrix.set_to_identity();  //Reset the plane ("erase" all leveling data)
    if ( code_seen('E') || code_seen('e'))
        retract_flag++;
Those are the same homing macros the G28 code uses. If you put those at the top of the G29, it would home X, Y, and Z in that order. I showed it before any parameter checking is done just to keep it simple. It might be cleaner to put the Homing macros after all the checking is done so nothing happens if a parameter is bad. Let me know if that works. (Like I say... I haven't checked that this works.)