Calculate CRC-16/Maxim in VHDL
From crccalc's source code (Ref stands for 'reflect'):

    /// &lt;summary&gt;
    /// This is a boolean parameter. If it is FALSE, input bytes are
    /// processed with bit 7 being treated as the most significant bit
    /// (MSB) and bit 0 being treated as the least significant bit.If this
    /// parameter is FALSE, each byte is reflected before being processed.
    /// &lt;/summary&gt;
    public bool RefIn { get; private set; }

    /// &lt;summary&gt;
    /// This is a boolean parameter. If it is set to FALSE, the
    /// final value in the register is fed into the XOROUT stage directly,
    /// otherwise, if this parameter is TRUE, the final register value is
    /// reflected first.
    /// &lt;/summary&gt;


So basically, for the CRC/MAXIM, since both are true:


You shift in LSB first because RefIn is true
You mirror the output bits before applying the XOR mask


Regarding that XOR mask: you seem to have forgotten it, the MAXIM implementation specified 0xFFFF, which means you should invert each of your output bits before calculating the next stage polynomial.

Handy little resouces:


Painless guide to CRC tools
Free online generation tools for CRC polynomial calculations