You get a better mesh with a different boundary mesh generator:
(mesh = ToElementMesh[reg,
"BoundaryMeshGenerator" -> \
{"BoundaryDiscretizeRegion",
Method -> {"MarchingCubes", PlotPoints -> 33}},
"MeshOrder" -> 1,
"MaxCellMeasure"\[Rule]0.000000005])["Wireframe"]
[![enter image description here][1]][1]
For that mesh I get
Abs[vals]/(2 Pi)
(*{0.000502385, 0.000502385, 0.00072869, 0.00072869, \
0.000733392, 0.000733392, 0.0010404, 0.0010404, 0.00150767, \
0.00150767, 0.00151325, 0.00151325, 0.308656, 2238.88, 2238.88}*)
And the 14th mode looks like:
MeshRegion[
ElementMeshDeformation[mesh, Re[Through[funs[[14]]["ValuesOnGrid"]]],
"ScalingFactor" -> 10^9]]
[![enter image description here][2]][2]
Two other comments: the fact that NDEigensystem gives messages suggests to me that this mesh is still not good enough; as you see I also used `MeshOrder->1` as I did not want to wait for a second order mesh to finish. But you might want to try that and a finer mesh. Probably by using more plot points. Perhaps generate the boundary mesh manually?
A second thing that come to mind is that I think you should have some rigid body modes because the glass stands on the table. Maybe experiment with
DirichletCondition[{u[t, x, y, z] == 0, v[t, x, y, z] == 0,
w[t, x, y, z] == 0}, x == 0]
Also, there is a nice Bell Acoustics customer example in the [FEMAddOns](https://github.com/WolframResearch/FEMAddOns). You can install that with
ResourceFunction["FEMAddOnsInstall"][]
and find it on the Applications guide page
FEMAddOns/guide/FEMApplications
or have a look at the cloud version of that [notebook](https://www.wolframcloud.com/obj/github-cloud/blobs/e55af7e9216711be5a312d3ed6dd8e448775435a).
Hope this helps.
[1]: https://i.sstatic.net/F993n.png
[2]: https://i.sstatic.net/Ru9Lt.jpg