© 2014 Elsevier Ltd. In three dimensional discontinuous deformation analysis (3D DDA), the contact detection between blocks is the most expensive part in terms of the total computational cost. The detection normally comprises two stages, namely the search of neighboring blocks and the identification of contact modes. The first stage aims to find out all possible neighboring blocks and the second is to identify the exact contact modes between of neighboring blocks from their vertices, edges and faces. In this paper, an efficient and robust spatial contact detection algorithm is presented linking the above mentioned two stages using a novel multi-shell cover (MSC) system and decomposition of geometrical sub-units. The present MSC method greatly reduces the contact detection volume and iterations. This paper also provides a unified formula of vertex to face and edge to edge contacts. The proposed method is implemented in a 3D DDA computer program. Numerical examples are tested and the results show improved computational efficiency comparing with existing methods.