Hilbert's 3rd Problem asks which polyhedra can be cut up an reassembled into other polyhedra. The problem was solved by Max Dehn in 1901 with what are now called Dehn invariants. A write-up can be found at Dehns Dissection Theorem. 
The Dehn invariant of a polyhedron is the total of the tensor products of the edge lengths and "adapted" dihedral angles. But that's too complicated at this hour of the night. But products of the edge lengths and dihedral angles, that I can do.
 
DehnCalculator[name_] := 
  Module[{faceindices, dihedralanglerules, vertexindices, anglelist, 
    joinedfaces, edges, edgelengths, edgelengthsfromfaces, 
    simplifiededgelengths}, 
   edgelengths = PolyhedronData[name, "EdgeLengths"];
   faceindices = PolyhedronData[name, "FaceIndices"];
   dihedralanglerules = PolyhedronData[name, "DihedralAngleRules"];
   anglelist =  Last /@ dihedralanglerules;
   joinedfaces =  First /@ dihedralanglerules;
   edges = (Intersection @@ faceindices[[#]]) & /@ joinedfaces;
   vertexindices = PolyhedronData[name, "VertexIndices"];
   edgelengthsfromfaces = (EuclideanDistance @@ 
        vertexindices[[#]]) & /@ edges;
   simplifiededgelengths = 
    Nearest[edgelengths, #] & /@ edgelengthsfromfaces;
   {name, N[Total[simplifiededgelengths  anglelist]/Pi, 30][[1]]}
   ];
The tricky part is syncing the edges with the dihedral angles. But there's the code. So -- which polyhedra have nice numbers under my crude Dehn invariant calculator? Here's a piece of analytic code:
 
Grid[Reverse /@ Select[DehnCalculator[#] & /@ PolyhedronData[], Chop[Last[#] - Round[Last[#]]] == 0 &]]
And here is the result.
6.00000000000000000000000000000 AcuteGoldenRhombohedron
 18.0000000000000000000000000000 AugmentedTruncatedTetrahedron
 46.0000000000000000000000000000 BiaugmentedTruncatedCube
 6.00000000000000000000000000000 Cube
 30.0000000000000000000000000000 CubeFiveCompound
 24.0000000000000000000000000000 {CubeFourCompound,1}
 24.0000000000000000000000000000 {CubeFourCompound,2}
 36.0000000000000000000000000000 CubeSixCompound
 60.0000000000000000000000000000 CubeTenCompound
 18.0000000000000000000000000000 CubeThreeCompound
 12.0000000000000000000000000000 CubeTwoCompound
 18.0000000000000000000000000000 ElongatedDodecahedron
 30.0000000000000000000000000000 GreatDodecahedron
 150.000000000000000000000000000 GreatRhombicosidodecahedron
 54.0000000000000000000000000000 GreatRhombicuboctahedron
 8.00000000000000000000000000000 Gyrobifastigium
 6.00000000000000000000000000000 ObtuseGoldenRhombohedron
 48.0000000000000000000000000000 PentagonalPrismSixCompound
 4.00000000000000000000000000000 {Prism,3}
 8.00000000000000000000000000000 {Prism,5}
 10.0000000000000000000000000000 {Prism,6}
 12.0000000000000000000000000000 {Prism,7}
 14.0000000000000000000000000000 {Prism,8}
 16.0000000000000000000000000000 {Prism,9}
 18.0000000000000000000000000000 {Prism,10}
 16.0000000000000000000000000000 RhombicDodecahedron
 160.000000000000000000000000000 RhombicEnneacontahedron
 72.0000000000000000000000000000 RhombicHexecontahedron
 30.0000000000000000000000000000 RhombicIcosahedron
 48.0000000000000000000000000000 RhombicTriacontahedron
 30.0000000000000000000000000000 SmallStellatedDodecahedron
 30.0000000000000000000000000000 SquashedDodecahedron
 24.0000000000000000000000000000 TruncatedOctahedron 
So, theoretically, each of these polyhedra could be cut up and glued together to make a cube. It turns out that over at Demonstrations, solutions for quite a few of these can be found at cube dissections. Many of them are space-filling polyhedron. Of the space-filling polyhedra in PolyhedronData, only DehnCalculator["EscherSolid"] gives a weird value ~ 49.9817541506643924553741723588. Maybe there's a mistake in my code somewhere.
The next step might be to make this more accurate so that it works on arbitrary polyhedra such as the space-filling tetrahedra.