I think we may still have some issues with numpy arrays. Notice this works for lists of lists.

```python
In [1]: from pyne.mesh import Mesh, IMeshTag

In [2]: a = Mesh(structured=True, structured_coords = [[0,1,2],[0,1],[0,1]])

In [3]: a.cat = IMeshTag(2, float)

In [4]: import numpy as np

In [5]: a.cat[:] = np.array([[0.11, 0.22],[0.33, 0.44]])
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-8a4dee4762bb> in <module>()
----> 1 a.cat[:] = np.array([[0.11, 0.22],[0.33, 0.44]])

/home/elliott/.local/lib/python2.7/site-packages/pyne/mesh.pyc in __setitem__(self, key, value)
    365             if not (isinstance(value, Sequence) and len(value) == len(idx)):
    366                 value = [value] * len(idx)
--> 367             mtag[list(miter)[key]] = value
    368         elif isinstance(key, np.ndarray) and key.dtype == np.bool:
    369             if len(key) != size:

ValueError: object too deep for desired array

In [6]: a.cat[:] = [[0.11, 0.22],[0.33, 0.44]]
```