Nun musste ich selbst nachschlagen. Man schreibt so etwas ja intuitiv, ohne nachzudenken.
Du hast es richtig beschrieben. Es gibt aber Ausnahmen: Wenn etwas auf einer Fläche geschieht und die Ausrichtung der Fläche im Raum in dem Kontext keine Bedeutung hat, kann man auch „auf“ sagen, wenn die Fläche nicht horizontal ausgerichtet ist.
In diesem Fall wäre also beides möglich: „auf dem Spiegel“ oder „an dem Spiegel“. Aber „an dem Spiegel“ klingt tatsächlich besser.
Grundsätzlich kann man sagen, dass es für die deutsche Sprache furchtbar viele Regeln gibt, die aber kaum jemand vollständig beherrscht. Letztendlich ist ja nur wichtig, ob das Gesagte verständlich ist. Dazu kommt, dass es regionale Unterschiede gibt.