MatrixLens not computing lens properties on setting matrix

Panda isn’t able to compute lens properties from an arbitrary matrix, I believe. When you use a MatrixLens, the matrix you pass in is used, and the other lens parameters are ignored. Panda can compute from any other set of parameters, though, so you could just pass the focal length and near/far range to Panda and it will compute the other parameters accordingly.

In the case of MatrixLens, Panda computes the projection mat from these three components (in the monoscopic case):
completeProjMat = inverse(lensMat) * userMat * filmMat

The lens matrix transforms a point in front of the lens to a point in space, and is computed from setViewHpr or setViewVector, or overridden using setViewMat.
The film matrix is the post-projection transform and is computed from setFilmOffset and setFilmSize, and optional keystone. It can be overridden using setCustomFilmMat. Assuming I understand correctly what you mean by a principal point (I’m not at all knowledgeable in this area), setFilmOffset might be the place to apply the desired offset?