An autonomous robot must obtain information about its surroundings to accomplish multiple tasks that are greatly improved when this information is efficiently incorporated into a map. Some examples are navigation, manipulation, localization, etc. This mapping problem has been an important research area in mobile robotics during last decades. It does not have a unique solution and can be divided into multiple sub-problems. Two different aspects of the mobile robot mapping problem are addressed in this work. First, we have developed a Differential Evolution-based scan matching algorithm that operates with high accuracy in three-dimensional environments. The map obtained by an autonomous robot must be consistent after registration. It is basic to detect when the robot is navigating around a previously visited place in order to minimize the accumulated error. This phase, which is called loop detection, is the second aspect studied here. We have developed an algorithm that extracts the most important features from two different three-dimensional laser scans in order to obtain a loop indicator that is used to detect when the robot is visiting a known place. This approach allows the introduction of very different characteristics in the descriptor. First, the surface features include the geometric forms of the scan (lines, planes, and spheres). Second, the numerical features are values that describe several numerical properties of the measurements: volume, average range, curvature, etc. Both algorithms have been tested with real data to demonstrate that these are efficient tools to be used in mapping tasks.