Matrix parameters in WindowsGL crashing

It appears that the WindowsGL platform is optimizing matrices in shaders to be 4x3 instead of 4x4. This causes an exception in EffectPass.Apply() after I set a Matrix parameter on an effect. The ConstantBuffer’s internal _buffer member (there seems to be one for each parameter?!) is only 48 bytes large, so it crashes on this line when it tries to copy the 64-byte matrix:

Buffer.BlockCopy(data as Array, 0, _buffer, offset, rowscolumnselementSize);

With this call stack:

MonoGame.Framework.dll!Microsoft.Xna.Framework.Graphics.ConstantBuffer.SetData(int offset, int rows, int columns, object data) Line 87 + 0x3c bytes C#
MonoGame.Framework.dll!Microsoft.Xna.Framework.Graphics.ConstantBuffer.SetParameter(int offset, Microsoft.Xna.Framework.Graphics.EffectParameter param) Line 127 + 0xad bytes C#
MonoGame.Framework.dll!Microsoft.Xna.Framework.Graphics.ConstantBuffer.Update(Microsoft.Xna.Framework.Graphics.EffectParameterCollection parameters) Line 170 + 0x16 bytes C#
MonoGame.Framework.dll!Microsoft.Xna.Framework.Graphics.EffectPass.Apply() Line 124 C#

What is the best practice for matrix parameters when running the OpenGL version?