Microsoft documentation on BinaryReader for ReadUnt32 (for example) states: Reads a 4-byte unsigned integer from the current stream using little-endian encoding. However, is
The documentation is certainly a hint that implementors on other platforms should use little-endian encoding, and Mono seems to respect this:
public virtual uint ReadUInt32() { FillBuffer(4); return((uint) (m_buffer[0] | (m_buffer[1] << 8) | (m_buffer[2] << 16) | (m_buffer[3] << 24))); }