Fix typo in exception and also add SetValue(float[]) which is used for Matrix4 (this allows you to avoid all those calls to Matrix4.ToFloat()).