Hola otra vez:
Parece que me quedé en blanco, pero ¡no!
Vayamos por parte:
En la etiqueta "frame", no tiene sentido el atributo "target", y el "parent.der" es válido para el ejemplo anterior, cuando se usa un "frame name=der".
En tu caso debería ser "parent.principal" (como tú dices: "parent.principal.cambio()"
Lo de "un dibujo" no es más que texto, lo que importa es que en esa etiqueta "<TD>" está la respuesta al evento de pasar el ratón por encima "onmouseover"; se supone que al pasar el ratón por encima de "un dibujo", debería realizarse la acción "parent.principal.cambio()".
Los dibujos se supone que están precargados, aunque para las pruebas (y para que no te compliques hasta que te funcione) puedes usar los nombres completos: "M7.gif".
Bueno, a ver si mejoramos...
Saludos