Statt der Spiegelungsmatrix solltest du es eher mit einer Rotationsmatrix versuchen.
Grundidee wäre, dass du jede Situation auf eine einfachere zurückführst, indem du das Koordinatensystem entsprechend drehst.
Wenn die Kugel auf eine nicht waagrechte(oder auch senkrechte) gerade fällt, drehst du das Koordinatensystem um eben jenen Winkel, sodass du den einfacheren Fall einer Gerade parallel zur x oder y - Achse hast. Hier die neue Richtung berechnen und anschließend wieder zurückdrehen.
Rotiert werden muss nur die Richtung.
Infos zur Rotation:
Drehmatrix
Ich hoffe in der Skizze erkennt man einigermaßen was ich meine (Paint
)