I just started a job to integrate Bullet into 3D application, so most probably I've naive questions

1) I realize it's always preferable to use primitives (like box, sphere etc) instead of triangle meshes. Is there utils to auto-detect standard shapes from source meshes?
2) Is there utils/methods to auto-detect masses (specified "density") and masses centers for standard shapes and meshes?
3) How to use "convex hulls"? Can I ask user to specify this kind of object and just use mesh vertices?
4) Is it necessary to have vertices joined? For example, I've a cube with 24 vertices, each corner has 3 vertices with same positions but different normals and/or UVs. Should I join them?
5) I've created a simple simulation: a sphere (btGImpactMeshShape) falls on ramp (btBvhTriangleMeshShape). I've used btGImpactCollisionAlgrorith::registerAlgorithm (otherwise no collision detection). The sphere falls but doesn't roll down on ramp as it should. What can be wrong?
6) How can I get/extract Euler's angles from quaternions? Application uses "left" coordinate system (Z is inverted compared to Bullet's system)
Thanks