Why does rotation by a quaternion require multiplying two times? Given a vector $p$, to rotate it by a quaternion $q$, we use the formula:  
$$p' = q p \hat{q}$$
where $\hat{q}$ is the conjugate of $q$. But if we use rotational matrices, then it's just
$$p' = Rp$$
While it's clear why the matrices work this way, I just cannot develop any intuition on quaternion rotation formula. I realise the formula does work, but still my guts feel as if it was “rotate $p$ by $q$ and then compose it with the inverse rotation of $q$”. Maybe there is some simple explanation?
 A: Lets try to develop the formula:
$$p' = q p \hat{q} = \left(\begin{array}{cc} \vec{p'} \\ 0\end{array} \right) = \left(\begin{array}{cc} \vec{u}\sin{\phi\over2} \\ \cos{\phi\over2}\end{array} \right) \otimes \left(\begin{array}{cc} \vec{p} \\ 0\end{array} \right) \otimes  \left(\begin{array}{cc}- \vec{u}\sin{\phi\over2} \\ \cos{\phi\over2}\end{array} \right) $$
In which $\vec{u}$ and $\phi$ are the axis and angle of the rotation represented by the quaternion. After various transformation that I will omit for sake of brevity you obtain
$$ \vec{p'} = \vec{p}_\perp \cos{\phi}  + \left( \vec{u}\times \vec{p}\right)\sin{\phi} + \vec{p_\parallel}$$
That is the 3D vector rotation formula.
Moreover, considering both
$$p' = q p \hat{q}$$
$$p' = Rp$$
You can derive the result:
$$\left(\hat{q}\right)^\oplus \left(q\right)^+ = \left(\begin{array}{cc}R & 0\\ 0 & 1\end{array}\right)$$ 
where R is the rotation you were referring to.
A: I will try to provide a simple intuition. Suppose q = $\hat i$,$q^{-1}=-\hat i$  and p = $\hat j$.
Now, $q*p = \hat k$ will give you a 90-degree rotation anticlockwise.
Similarly, $q^{-1}*p$ will give you a 90-degree rotation clockwise.
So we start thinking if these operations are done in succession wouldn't these operations cancel out each other?
The answer to this is as follows -
$q*p$ is not the same as $p*q$. So when you express your operations as $q*(p*q^{-1})$ you are actually performing a 180-degree rotation. To see this let us compute the result
$\hat j* - \hat i = -\hat k, -\hat k*\hat i =-j$
Now let us perform $q^{-1}*(q*p) = -\hat i * \hat k = \hat j$ (cancel out operation)
The double cover property is important because, in the case of 2d, the addition of a single imaginary axis did the job. But in the 4d case, we have 3 extra imaginary axes that have to express 6 degrees of freedom. Hence in order to have closure on the 6 DoF we need to have the double cover.
