I seem to have solved both problems by transforming the texture matrix by the object's transforms.  This is annoying, but it works.