Shouldn't this:
[code=delphi]
ModelView := MatrixMultiply(ProjMat, MatrixMultiply(ModelView2, Modelview));
[/code]
be
[code=delphi]
ModelView := MatrixMultiply(ProjMat, MatrixMultiply(ModelView2, Cam));
[/code]
instead?