Pivot table with multiple indexes and value columns with Pandas

I'm trying to pivot a data.frame that have multiple indexes and value columns with a single column name to pivot on. Ideally, I'd like to take each column variable and create a new column with that value and name. Here is a simple example to illustrate.

Sample Data

tdat = pd.DataFrame({'a': [0, 0, 1, 1, 2, 2], 'b': [0, 0, 0, 0, 0, 0], 
                     'a_b': ['0_0', '0_0', '1_0', '1_0', '2_0', '2_0'],
                     'var_name': ['var1', 'var2', 'var1', 'var2', 'var1', 'var2'],
                     'mean': [1, 2, 3, 4, 5, 6],
                     'var': [10, 11, 12, 13, 14, 15]})

> tdat
   a  b  a_b var_name  mean  var
0  0  0  0_0     var1     1   10
1  0  0  0_0     var2     2   11
2  1  0  1_0     var1     3   12
3  1  0  1_0     var2     4   13
4  2  0  2_0     var1     5   14
5  2  0  2_0     var2     6   15

Prefered Output

   a  b  a_b  var1_mean  var1_var  var2_mean  var2_var
0  0  0  0_0       1        10        2          11
1  1  0  1_0       3        12        4          13
2  2  0  2_0       5        14        6          15

Pandas Pivot Call

tdat.pivot(index=['a', 'b', 'a_b'], columns='var_name', values=['mean', 'var'])

ValueError: Shape of passed values is (6, 2), indices imply (3, 2)