Mathematical development of rotational cross product I'm turning a bit crazy about a development of a rotational cross product. I'm trying to prove the vector-calculus identity
$$\vec{\rm rot}(\vec{m} \times \vec{r})=2\vec{m}$$
where


*

*$\vec{r}=r \vec{e_r}$ is naturally in spherical coordinates.

*$\vec{m}=I \pi a^2 \vec{e_z}$ which is constant, in cartesian coordinates.


For me :
$$\vec{\rm rot}(\vec{m} \times \vec{r})=2\vec{m} = \vec{m} \, \mathrm{div} (\vec{r}) - \vec{r} \,\mathrm{div}  (\vec{m}) + (\vec{r}\cdot\vec{\rm grad})\vec{m} - (\vec{m}\cdot\vec{\rm grad})\vec{r},$$
and $\vec{m}$ is constant so $\vec{\rm rot}(\vec{m} \times \vec{r})=\vec{m} \, \mathrm{div}  (\vec{r}) - (\vec{m}\cdot \vec{ \rm grad})\vec{r}$, and obviously $\vec{m} \, \mathrm{div}  (\vec{r})=3\vec{m}$. The problem is that I can't find how to calculate 
$$- (\vec{m}\cdot \vec{\rm grad})\vec{r}$$
 in spherical coordinates.
In cartesian coordinates it's simple, since
$$m_z\frac{\partial}{\partial z}(x \vec{e_x}+y \vec{e_y}+z \vec{e_z})=m_z \vec{e_z}=\vec{m}.$$
But why is it totally different in spherical coordinates? I can't find where is my error in e.g. the following:
$$\left(m_r\frac{\partial}{\partial r}+m_\theta\frac{1}{r}\frac{\partial}{\partial \theta}+m_\phi\frac{1}{r \sin \theta}\frac{\partial}{\partial \phi}\right)r \vec{e_r} 
=
 m_r\vec{e_r}\neq \vec{m}$$
It's really strange that the result is fundamentally different in cartesian and spherical coordinates, it must be wrong somewhere.
 A: Your expression for the gradient in spherical coordinates,
$$
\nabla f = 
{\partial f \over \partial r}\vec e_r
 + {1 \over r}{\partial f \over \partial \theta}\vec e_\theta
 + {1 \over r\sin\theta}{\partial f \over \partial \varphi}\vec e_\varphi
$$
is only valid for scalar functions, and you're trying to apply it to the vector-valued $r \vec e_r$. If you want a spherical-coordinates expression for either (i) the tensor-valued gradient $\nabla \vec f$ of a vector-valued function $\vec f$, or (ii) the directional derivative $(\vec g\cdot \nabla)$ as applied to scalar functions or (iii) to vector functions, then you need to re-derive them from scratch, and you have no guarantee of success.
Aspects like these are why e.g. the laplacian is so messy in spherical coordinates, and why we tend to work in cartesian systems unless the application really warrants it.
In your specific case, it doesn't, at all. Since $\vec m$ is fixed, and vector-calculus identities hold in all reference frames if they hold in one, then you're free to choose a coordinate system in which the $z$ axis goes along $\vec m$, in which case your identity boils down to a routine calculation,
\begin{align}
\nabla \times(\vec m\times\vec r) 
& = \nabla \times \left[
\begin{pmatrix}0\\0\\m_z\end{pmatrix}
\times
\begin{pmatrix}x\\y\\z\end{pmatrix}
\right]
 = 
\begin{pmatrix}\partial_x\\\partial_y\\\partial_z\end{pmatrix}
\times
\begin{pmatrix}-m_z y\\ \phantom{-}m_z x\\0\end{pmatrix}
\\& = 
\begin{pmatrix}
\partial_y(0)-\partial_z (m_zx)\\
-\partial_z(m_z y)+\partial_x (0)\\
\partial_x(m_z x)+\partial_y (m_zy)
\end{pmatrix}
 = 
\begin{pmatrix}
0 \\ 0 \\ 2m_z
\end{pmatrix}
=
2\vec m.
\end{align}
The internals of the calculation don't matter: you've got an invariant vector equation, $\nabla \times(\vec m\times\vec r) =2\vec m$, and that's all that anyone needs to know. If you want to go ahead and make the calculation more painful for yourself, then go ahead, and if you do things right then that's also a valid approach. 
If you're just trying to train your vector-calculus chops then it can be worth to also do things the painful way, but it's also worth emphasizing that, while it's important to know how to do these calculations when they get complicated, it is also equally important to learn how to structure and strategize your calculations so that they don't get any more complicated than they need to be.
