Hi
I don't think that it is possible to damage a device by programming the clock incorrectly. If settings a are not good the VCO will not be able to lock but after a reset it would be able to work again and the device recovered by performing an erase with teh debugger.
Since I never used XTAL1 as source I can't verify your code but below is the set up (showing hex values rather than defines or macros) for XTAL0 from 12MHz crystal for 150MHz system coock as reference. I didn't see any errors concering speeds.
Regards
Mark
MCG_C2 = 0xac; // select crystal oscillator
MCG_C1 = 0x98; // switch to external source (the FLL input clock is set to as close to its input range as possible, although this is not absolutely necessary if the FLL will not be used)
while (!(MCG_S & MCG_S_OSCINIT)) {} // loop until the crystal source has been selected
while (MCG_S & MCG_S_IREFST) {} // loop until the FLL source is no longer the internal reference clock
while ((MCG_S & MCG_S_CLKST_MASK) != MCG_S_CLKST_EXTERN_CLK) {} // loop until the external reference clock source is valid
MCG_C5 = 0; // 12M / 1 = 12MHz
MCG_C6 = 0x49; // 12MHz x 25 = 300MHz VCO = 150MHz PLL; move from state FEE to state PBE (or FBE)
while ((MCG_S & MCG_S_PLLST) == 0) {} // loop until the PLLS clock source becomes valid
while ((MCG_S & MCG_S_LOCK) == 0) {} // loop until PLL locks
SIM_CLKDIV1 = 0x01250000; // 150MHz system, 75MHz bus, 30MHz flex, 25MHz flash
MCG_C1 = 0x28; // switch to PLL clock
while ((MCG_S & MCG_S_CLKST_MASK) != MCG_S_CLKST_PLL) {} // loop until the PLL clock is selected