One important thing to note with the transformation matrices is that any scaling needs to be the first operation to be applied. Otherwise, any translations done before that get messed up. Since I will be scaling things pretty rarely, not sure if it's worth doing anything special about this. model_transform is only changed outside of transformObject() for lasers.