For the cases of N3d to V3d , such as add, substract etc, you indeed need to rethink few lines.
Good news is that not only you get in speed for now, but getting used to Vector3d will simplify your work in general.
Rob took great care at minimizing the impact on existing projects.
That's one of the reason Number3D is still here today for instance. But it's already more or less obsolete, and you should try remove as much N3d as you can.
Dunno if applicable with your Matrix3dUtils calls, but I've added optional Vector3D params in that class to prevent get a new Vector3D each time you call it.
So trick is simple, you declare once a Vector3D holder and pass it to the class methods over and over, only it's values are altered. No Vector3D passed results in a new instance.
Meaning here that if its called often you should apply this construction. If we encounter more cases where its required, we will add similar solutions.
Doc will also be updated soon.
Fabrice