To get away from shaders switch could i just use one for all without consequence?
I tried this and it worked:
MAX_BONES = 35;
...
vector<D3DXMATRIX> vMat; // vMat size varies from 20 - 30 depending on a model
...
effect->SetValue(hMatrices, &vMat[0], MAX_BONES * sizeof(D3DXMATRIX));
...
float4x4 mats[MAX_BONES];
...