Hello Puru,
When you are using the signed configuration the range is from -512 to 511, -512 is indeed the Fault Response Code (see table 34 from the MMA68xx datasheet). The error codes are summarized in Table 30. "SPI Response Message Summary" and later with more detail in section 5.5 "Exception Handling."
You are correct, the response or acceleration data is transmitted on the next SPI message if everything in the communication is correct, otherwise it returns the status error.
I previously mentioned the "SPI Response Message Summary", in this table there is a section named "Error Responses", that tells you how to differentiate from every error response.
No additional calculation is needed, just the signed decimal value from the 10-bit digital output multiplied by the sensitivity (g/LSB) and you get the acceleration in Gs. Note that the acceleration is given in LSB/g so you need to calculate the reciprocal.
Example: reciprocal(4.096 LSB/g) x 480 LSB = 117.19 g (trimmed for maximum range)
Darío